/*
 * GestionSeguridadAdministrativaclienteApp.java
 */

package gestionseguridadadministrativacliente;

import administracion.delegate.GestionSeguridadDelegate;
import administracion.helper.Utiles_MensajesDialogo;
import administracion.propiedades.Propiedades;
import gestionseguridadadministrativa.tareasprogramadas.TemporizadorTareas;
import java.util.EventObject;
import javax.swing.JOptionPane;
import org.jdesktop.application.Application;
import org.jdesktop.application.SingleFrameApplication;


/**
 * The main class of the application.
 */
public class GestionSeguridadAdministrativaclienteApp extends SingleFrameApplication {

    /**
     * At startup create and show the main frame of the application.
     */
    private void salir()
  {
    try {
      TemporizadorTareas.stop();
      String user = Propiedades.getUsuario();
      GestionSeguridadDelegate.getInstance().desloguear(user);
      Propiedades.setUsuario("");
      Propiedades.setEstado("0");
    } catch (Exception e) {
      Utiles_MensajesDialogo.mensajeError("Error al cerrar sesion\n" + e.getMessage());
      e.printStackTrace();
    }
    System.exit(0);
  }

    @Override protected void startup() {
        ExitListener maybeExit = new ExitListener() {
            public boolean canExit(EventObject e) {
                int option = JOptionPane.showConfirmDialog(null, "¿Desea Salir de la Aplicacion?","Confirme",JOptionPane.YES_NO_OPTION);

                return option == JOptionPane.YES_OPTION;
            }
            public void willExit(EventObject e) {
                salir();
            }
        };
        addExitListener(maybeExit);
        //show(new GestionSeguridadAdministrativaclienteView(this));
        try
    {
      String estado = Propiedades.getEstado();
      String user = Propiedades.getUsuario();
      if (!estado.equalsIgnoreCase("0")) {
        GestionSeguridadDelegate.getInstance().desloguear(user);
        Propiedades.setUsuario("");
        Propiedades.setEstado("0");
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
    jdSeguridadAdministracionLogueo logueo = new jdSeguridadAdministracionLogueo(this, true,true);
    logueo.setLocationRelativeTo(null);
    logueo.setVisible(true);
    }

    /**
     * This method is to initialize the specified window by injecting resources.
     * Windows shown in our application come fully initialized from the GUI
     * builder, so this additional configuration is not needed.
     */
    @Override protected void configureWindow(java.awt.Window root) {
    }

    /**
     * A convenient static getter for the application instance.
     * @return the instance of GestionSeguridadAdministrativaclienteApp
     */
    public static GestionSeguridadAdministrativaclienteApp getApplication() {
        return Application.getInstance(GestionSeguridadAdministrativaclienteApp.class);
    }

    /**
     * Main method launching the application.
     */
    public static void main(String[] args) {
        launch(GestionSeguridadAdministrativaclienteApp.class, args);
    }
}
